1. Technical Field
This invention relates to data processing devices. In particular, this invention relates to a security interface for debugging a central processing unit in a data processing device.
2. Description of Related Art
The use of portable data processing systems has increased significantly in recent years. In addition to so called “laptop” and “tablet” computers, there is a growing popularity in handheld data processing devices, often called a “personal digital assistant” or “PDA.” All of these devices are capable of storing a significant amount of user data, including calendar, address book, tasks and numerous other types of data for business and personal use. Most handheld data processing devices have the ability to connect to a personal computer for data exchange, and many are equipped for wireless communications using, for example, conventional email messaging systems. Depending upon the user's needs much of this data can be highly sensitive in nature, especially for example in a government, military or commercial context.
There are two competing parameters in any high security embedded system. The first is to prevent an attacker from accessing secure data or taking control of the system. The second is to allow an embedded software developer to debug the system, both during development and after the product has been launched. A common debug mechanism available in embedded systems is known as the “JTAG” port, which is essentially a back door into the system. The JTAG port can be used to communicate with the processor, read from and write to memory locations, and access boundary scan. Furthermore, several chips can be chained together so that one JTAG port can be used to access several chips.
Portable data processing systems are typically password protected, which can be effective security against attack through the normal operation of the device. However, it may be possible for a technically sophisticated individual with malicious intent to bypass the normal system security entirely by attacking the system through the JTAG port.
One possible way to prevent this is to create a development version of the chip with full debugging capability, and after it has been tested and debugged, create a new version of the chip for commercial sale which has no or very limited debugging capability. This results in considerable cost and time inefficencies, and the loss of after-market debugging capability in the commercial version of the chip. Another possibility is to disable the JTAG port after the chip has been tested and debugged, but again this curtails debugging capability after commercial sale.
Protecting the JTAG port against an attack while allowing for effective debugging of the system has accordingly been a difficult problem.